package com.yingxin.yxerp.module.report.vo.resp;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yingxin.yx.framework.commons.vo.CommonRespVo;
import com.yingxin.yxerp.module.report.entity.enums.DynamicTaskLogStatusEnums;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 动态任务-执行记录 实体类
 * @author yuebao
 * @date 2023-11-25
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "DynamicTaskLogRespVo", description = "view")
public class DynamicTaskLogRespVo extends CommonRespVo {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private String id;

    /**
     * 来源(手动执行|自动执行)
     */
    private String categoryType;

    /**
     * 来源(手动执行|自动执行)
     */
    private String category;

    /**
     * tesk id
     */
    private String taskId;

    /**
     * 任务分类
     */
    private String taskType;

    /**
     * 任务分类 - 名称
     */
    private String taskTypeName;

    /**
     * 任务名称 - 分类
     */
    private String taskNameType;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 返回信息
     */
    private String msg;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    /**
     * 耗时(ms)
     */
    private Long spendTime;

    public Long getSpendTime(){
        if( spendTime != null ){
            return spendTime / 1000;
        }
        return Long.parseLong("0");
    }

    /**
     * 状态（ -1-失败 0-执行中 1-成功）
     */
    private Integer status;

    private String statusName;

    public String getStatusName(){
        if( status != null ){
            return DynamicTaskLogStatusEnums.getEnum( status ).getStatusName();
        }
        return null;
    }

    /**
     * 创建者id
     */
    private String creatorId;

    /**
     * 创建者
     */
    private String creatorName;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新者id
     */
    private String updaterId;

    /**
     * 更新者
     */
    private String updaterName;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

}
